# Python去确定文件的close：你只管打开文件，并在需要时使用它，Python自会在合适的时候自动将其关闭。
# with 关键字，让Python负责妥善地打开和关闭文件
# 读取式（ 'r' ）、写入模式（ 'w' ）、附加模式（ 'a' ）或让你能够读取和写入文件的模式（ 'r+' ）。
# 如果你省略了模式实参，Python将以默认的只读模式打开文件。
# 如果你要写入的文件不存在，函数 open() 将自动创建它。然而，以写入（ 'w' ）模式打开文
# 件时千万要小心，因为如果指定的文件已经存在，Python将在返回文件对象前清空该文件。

# 整个文档读取
filename = 'E:\learn\python\my-python-master\文件操作\PiNum.txt'
with open(filename) as file_object:
    contents = file_object.read()
    #print(contents)
    print(contents.rstrip())           # 去除字符串末尾的空行打印

# 逐行读取
with open(filename) as file_object:
    for line in file_object:
        print('逐行读取:'+line.rstrip())

# 逐行读取数据到列表中
with open(filename) as file_object:
    lines = file_object.readlines()
for line in lines:
    print('逐行读取数据到列表中:'+line.rstrip())

# 使用文档中的内容
pi_str = ''
for line in lines:
    pi_str+=line.strip()               # 去除字符串首部的空行打印
print('使用文档中的内容:'+pi_str[:1]+'...')
print('pi_str的长度为:'+str(len(pi_str)))

# 字符串查找
#birthday = input("Enter your birthday, in the form mmddyy: ")
#if birthday in pi_str:
#    print("Your birthday appears in the first million digits of pi!")
#else:
#    print("Your birthday does not appear in the first million digits of pi.")

# 写文件,当文件存在，则会清空文件内容,写入新内容，文件不存在，则新建文件
filename = 'programming.txt'
with open(filename,'w') as file_object:
    file_object.write('i love programming.\n')

# 追加内容，文件存在，则会追加文本，文件不存在，则新建文件
with open(filename,'a') as file_object:
    file_object.write('i am append.\n')   
    file_object.write('i am append.\n')   

## 读写文件,当文件存在，则会覆盖即将写入位置的文本，文件不存在，则报错
with open(filename,'r+') as file_object:
    file_object.write('i love programming?\n')

